#ifndef DECISIONES_H
#define DECISIONES_H

#define MAX_VALORES_LEIDOS 5

#include <inttypes.h>
#include <QVector>

class decisiones
{
public:
    decisiones();

    uint32_t getPosicionLinea(uint32_t *valoresBarras);
    uint32_t getPosicionLinea2(uint32_t *valoresBarras);
    float getPosicionLineaHistogram(uint32_t *valoresBarras, float desplazamiento);
    float* getHistograma();
    float getConfianza();
    bool hayBifurcacion();
    bool getHayLinea();

private:
    uint32_t centroLineaAnterior;
    float confianzaAnterior;
    float histograma[24];
    float pesosConfianza[24];
    bool primeraVez;
    bool hayLinea;
    uint32_t indexMaxHist;
    float posicionLinea;

    float generarConfianza(int32_t *valoresBarras, uint32_t indice, int32_t media);
    float generarConfianza2(int32_t *valoresBarras, uint32_t indice, int32_t media);
    float generarConfianza3(int32_t *valoresBarras, uint32_t indice, int32_t media);
    float generarConfianza4(int32_t *valoresBarras, uint32_t indice, int32_t media);
};

#endif // DECISIONES_H
